
import torch.nn as nn
from utils import Params


class SeqClassifyModule(nn.Module):
    def __init__(self, params:Params):
        super(SeqClassifyModule, self).__init__()
        self.params = params

    def forward(self, input_feature, input_mask, labels=None, **kwargs):

        """
        最终决策输出（分类输出），最终返回各个类别的置信度、损失等数据
        NOTE:E2 == self.param.encoder_output_size
        :param input_feature:[N,T,E2] N个样本，每个样本T个时刻(token)，每个时刻（token）对应一个E2维的向量
        :param input_mask:每个token是否是实际token（是不是填充值）
        :param labels: 实际标签 [N,T]
        :param kwargs:额外参数，可能子类会用到
        :return: [N,T] 最终输出每个token对应的预测标签id、Tensor loss损失值
        """

        raise NotImplementedError("该方法在当前子类中未实现")




